using OrderingSystem.Core.Entities;

namespace OrderingSystem.Core.Interfaces
{
    public interface IFavoriteService
    {
        /// <summary>
        /// 获取所有收藏
        /// </summary>
        Task<IEnumerable<Favorite>> GetFavoritesAsync();

        /// <summary>
        /// 获取用户收藏
        /// </summary>
        Task<IEnumerable<Favorite>> GetUserFavoritesAsync(long userId);

        /// <summary>
        /// 获取收藏详情
        /// </summary>
        Task<Favorite> GetFavoriteAsync(long id);

        /// <summary>
        /// 创建收藏
        /// </summary>
        Task<Favorite> CreateFavoriteAsync(Favorite favorite);

        /// <summary>
        /// 删除收藏
        /// </summary>
        Task DeleteFavoriteAsync(long id);

        /// <summary>
        /// 检查是否已收藏
        /// </summary>
        Task<bool> IsFavoritedAsync(long userId, long refId, string type);
    }
} 